_require local "../../../../basis.smi"
(* _require local "../../../data/symbols/main/Loc.smi" *)
_require local "../../../data/symbols/main/Symbol.smi"
_require local "../../../data/symbols/main/RecordLabel.smi"
_require local "../../../extensions/debug/main/Bug.smi"
(* _require local "../../../libs/env/main/SEnv.smi" *)

_require local "../../../data/builtin/main/BuiltinPrimitive.ppg.smi"
(* _require local "../../../data/runtimetypes/main/RuntimeTypes.ppg.smi" *)
_require local "./TypesBasics.smi"
(* _require local "./VarMap.smi" *)
_require local "./TyPrinters.smi"

_require "../../../libs/ids/main/LocalID.smi"
_require "./Types.ppg.smi"

structure TyAlphaRename =
struct
  type btvMap = BoundTypeVarID.id BoundTypeVarID.Map.map
  val copyTy : btvMap -> Types.ty -> Types.ty
  val copyConstraint : btvMap -> Types.constraint -> Types.constraint
  val newBtvEnv : btvMap -> Types.btvEnv -> btvMap * Types.btvEnv
  val emptyBtvMap : BoundTypeVarID.id BoundTypeVarID.Map.map
end
